The concept of data centers is well-known, and there are tens of thousands of data centers scattered around the world. Data centers are facilities that house computer systems and the equipment needed to run them (e.g., storage equipment, communications equipment, power supplies, routers, switches, etc.). Data centers provide a secure facility for protecting and maintaining crucial corporate resources residing on networks. To assure business continuity (e.g., in the case of a catastrophic event occurring at a particular data center), it is commonplace for an entity relying on these crucial resources to have one or more levels of redundancy by “mirroring” their resources in one or more geographically separate data centers.
Typically, data centers house hundreds or thousands of servers, accessible to each other and to outside users via networking technologies such as Ethernet. Over the years, a concept known as server virtualization has been developed. When virtualizing servers, a single physical server is divided into multiple isolated environments, or multiple servers, using a software application. As an example, in a single data center, there may be two thousand physical servers, each having twenty virtual servers, resulting in a total of 40,000 virtual servers existing in the data center; therefore, 40,000 logical devices could be connected to this network housed in this data center.
In theory, virtual servers can reside on any physical server and can be moved around from one physical server to another. This virtual-machine migration process is supported by all virtualization technologies and it allows a virtual machine to be identified and moved to a new location. This is typically done in the event that the virtual machine is busy or is on a server that is busy; it can be moved to a server that is less busy, rather than installing new hardware which would be costly.
In a network or data center situation, however, for practical reasons due to limitations imposed by typical Ethernet architecture, the location of the virtual devices are geographically bound. In actual use, Ethernets are limited in use to smaller Ethernet sub-networks called VLan's, e.g., within the confines of one rack or two adjacent racks of equipment in the data center. One reason for this is that Ethernet, in order for it to be resilient, i.e., self-healing, relies on the Spanning Tree Protocol (STP). If something (e.g., a network element such as a switch) fails or is shut down in a spanning tree network, the entire network flow essentially stops completely, and no data flows over the particular Ethernet until STP converges and builds a loop-free topology route across the network that presents no further risks, after which time it slowly allows traffic to start flowing again.
The above-described delay can last anywhere from 30 seconds to several minutes. For a mission-critical data center, a delay of this magnitude affecting all servers in the data center is unacceptable, and so the above-mentioned Ethernet sub-networks are employed to isolate such delays to affect only the sub-network. For the same reasons, it is not practical using known systems and methods to extend Ethernet between two or more different data centers. This isolation concept limits the interchangeability of the virtual servers to their own sub-network, i.e., to the one or two racks forming the sub-network.
Attempts have been made to provide a bridge between data centers with a number of transport mechanisms (GRE tunnels, PWE or plain VLan extension) but it has always been for point solutions and managed on an exception basis as the model does not scale. These methods provide a point-to-point bridging path over distance that is seen by the Ethernet as a regular Ethernet segment. Given that they need to be provisioned and maintained one at a time, scaling these numbers quickly becomes unmanageable. Once these approaches have reached their practical or operational limits, data center architects are left with relying on the applications running on the virtual machines to solve the redundancy problem across multiple machines and sites. For example, a database could replicate its information to another data center, but in the event of a failure, a new server would need to be brought up to use the replicated information, instead of having the virtual server itself transfer from one physical machine to the other.
As is well known, network provisioning is the process of preparing and equipping a network so that it can provide services as needed. In typical Ethernet systems, to be able to have the flexibility to move a virtual server from one location to a non-adjacent and/or geographically remote location, every sub-net and server location must be pre-provisioned so that, if needed, the location in the first sub-net can communicate with the location in the second sub-net. As mentioned above, this is extremely complex and requires every node of the network to be pre-provisioned.